<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IgH EtherCAT Master: fsm_master.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IgH EtherCAT Master
   &#160;<span id="projectnumber">1.5.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('fsm__master_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">fsm_master.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>EtherCAT master state machine.  
<a href="#details">More...</a></p>

<p><a href="fsm__master_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a997e9f2ec2485eb23e2ff0831547b772"><td class="memItemLeft" align="right" valign="top"><a id="a997e9f2ec2485eb23e2ff0831547b772"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a997e9f2ec2485eb23e2ff0831547b772">EC_SYSTEM_TIME_TOLERANCE_NS</a>&#160;&#160;&#160;1000000</td></tr>
<tr class="memdesc:a997e9f2ec2485eb23e2ff0831547b772"><td class="mdescLeft">&#160;</td><td class="mdescRight">Time difference [ns] to tolerate without setting a new system time offset. <br /></td></tr>
<tr class="separator:a997e9f2ec2485eb23e2ff0831547b772"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad88c4db14716023743578741d24ef356"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#ad88c4db14716023743578741d24ef356">ec_fsm_master_state_start</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:ad88c4db14716023743578741d24ef356"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: START.  <a href="#ad88c4db14716023743578741d24ef356">More...</a><br /></td></tr>
<tr class="separator:ad88c4db14716023743578741d24ef356"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaedaccf13386cf2fd4d210d2b0de49d2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#aaedaccf13386cf2fd4d210d2b0de49d2">ec_fsm_master_state_broadcast</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:aaedaccf13386cf2fd4d210d2b0de49d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: BROADCAST.  <a href="#aaedaccf13386cf2fd4d210d2b0de49d2">More...</a><br /></td></tr>
<tr class="separator:aaedaccf13386cf2fd4d210d2b0de49d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f450d1021bf89f229fd39cc2aad8ea2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a6f450d1021bf89f229fd39cc2aad8ea2">ec_fsm_master_state_read_state</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a6f450d1021bf89f229fd39cc2aad8ea2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: READ STATE.  <a href="#a6f450d1021bf89f229fd39cc2aad8ea2">More...</a><br /></td></tr>
<tr class="separator:a6f450d1021bf89f229fd39cc2aad8ea2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a334ce30106dc39dc565a258a83abaa5c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a334ce30106dc39dc565a258a83abaa5c">ec_fsm_master_state_acknowledge</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a334ce30106dc39dc565a258a83abaa5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: ACKNOWLEDGE.  <a href="#a334ce30106dc39dc565a258a83abaa5c">More...</a><br /></td></tr>
<tr class="separator:a334ce30106dc39dc565a258a83abaa5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf40137bf5c31dc6a5c664ab10933d09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#aaf40137bf5c31dc6a5c664ab10933d09">ec_fsm_master_state_configure_slave</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:aaf40137bf5c31dc6a5c664ab10933d09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: CONFIGURE SLAVE.  <a href="#aaf40137bf5c31dc6a5c664ab10933d09">More...</a><br /></td></tr>
<tr class="separator:aaf40137bf5c31dc6a5c664ab10933d09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61be059802776f90560a2b3af6bc6efa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a61be059802776f90560a2b3af6bc6efa">ec_fsm_master_state_clear_addresses</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a61be059802776f90560a2b3af6bc6efa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: CLEAR ADDRESSES.  <a href="#a61be059802776f90560a2b3af6bc6efa">More...</a><br /></td></tr>
<tr class="separator:a61be059802776f90560a2b3af6bc6efa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d13892f43d288406c5c08bd30bf2fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a22d13892f43d288406c5c08bd30bf2fd">ec_fsm_master_state_dc_measure_delays</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a22d13892f43d288406c5c08bd30bf2fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: DC MEASURE DELAYS.  <a href="#a22d13892f43d288406c5c08bd30bf2fd">More...</a><br /></td></tr>
<tr class="separator:a22d13892f43d288406c5c08bd30bf2fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e4c985906d0e036c4039305621db63e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a0e4c985906d0e036c4039305621db63e">ec_fsm_master_state_scan_slave</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a0e4c985906d0e036c4039305621db63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: SCAN SLAVE.  <a href="#a0e4c985906d0e036c4039305621db63e">More...</a><br /></td></tr>
<tr class="separator:a0e4c985906d0e036c4039305621db63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad625d5b77974efd8b81ad28cebc76ca9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#ad625d5b77974efd8b81ad28cebc76ca9">ec_fsm_master_state_dc_read_offset</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:ad625d5b77974efd8b81ad28cebc76ca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: DC READ OFFSET.  <a href="#ad625d5b77974efd8b81ad28cebc76ca9">More...</a><br /></td></tr>
<tr class="separator:ad625d5b77974efd8b81ad28cebc76ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a411d3aafe085c64e7f5d8aad7b4cf231"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a411d3aafe085c64e7f5d8aad7b4cf231">ec_fsm_master_state_dc_write_offset</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a411d3aafe085c64e7f5d8aad7b4cf231"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: DC WRITE OFFSET.  <a href="#a411d3aafe085c64e7f5d8aad7b4cf231">More...</a><br /></td></tr>
<tr class="separator:a411d3aafe085c64e7f5d8aad7b4cf231"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab45ec9b9296a9d89c5c69bfd1a131f22"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#ab45ec9b9296a9d89c5c69bfd1a131f22">ec_fsm_master_state_write_sii</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:ab45ec9b9296a9d89c5c69bfd1a131f22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: WRITE SII.  <a href="#ab45ec9b9296a9d89c5c69bfd1a131f22">More...</a><br /></td></tr>
<tr class="separator:ab45ec9b9296a9d89c5c69bfd1a131f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51be12a2333f0ce6a1ecde4bed85c648"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a51be12a2333f0ce6a1ecde4bed85c648">ec_fsm_master_state_sdo_dictionary</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a51be12a2333f0ce6a1ecde4bed85c648"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: SDO DICTIONARY.  <a href="#a51be12a2333f0ce6a1ecde4bed85c648">More...</a><br /></td></tr>
<tr class="separator:a51be12a2333f0ce6a1ecde4bed85c648"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36ee13ebfe148e663f3c33ca6e408d1f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a36ee13ebfe148e663f3c33ca6e408d1f">ec_fsm_master_state_sdo_request</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a36ee13ebfe148e663f3c33ca6e408d1f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master state: SDO REQUEST.  <a href="#a36ee13ebfe148e663f3c33ca6e408d1f">More...</a><br /></td></tr>
<tr class="separator:a36ee13ebfe148e663f3c33ca6e408d1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b28c82e05cda964aaf088b49c0544b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a8b28c82e05cda964aaf088b49c0544b8">ec_fsm_master_enter_clear_addresses</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a8b28c82e05cda964aaf088b49c0544b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start clearing slave addresses.  <a href="#a8b28c82e05cda964aaf088b49c0544b8">More...</a><br /></td></tr>
<tr class="separator:a8b28c82e05cda964aaf088b49c0544b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66d11aeef350f72a207d329c9e617d1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a66d11aeef350f72a207d329c9e617d1b">ec_fsm_master_enter_write_system_times</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a66d11aeef350f72a207d329c9e617d1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start writing DC system times.  <a href="#a66d11aeef350f72a207d329c9e617d1b">More...</a><br /></td></tr>
<tr class="separator:a66d11aeef350f72a207d329c9e617d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a488579eaa191d91cfc1fe034d4995cd2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a488579eaa191d91cfc1fe034d4995cd2">ec_fsm_master_init</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm, <a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *master, <a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *datagram)</td></tr>
<tr class="memdesc:a488579eaa191d91cfc1fe034d4995cd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a488579eaa191d91cfc1fe034d4995cd2">More...</a><br /></td></tr>
<tr class="separator:a488579eaa191d91cfc1fe034d4995cd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6cb9c34903756062ea8bb72469e9cee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#ad6cb9c34903756062ea8bb72469e9cee">ec_fsm_master_clear</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:ad6cb9c34903756062ea8bb72469e9cee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#ad6cb9c34903756062ea8bb72469e9cee">More...</a><br /></td></tr>
<tr class="separator:ad6cb9c34903756062ea8bb72469e9cee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbc118dc57b717b9ef64481d279c95af"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#afbc118dc57b717b9ef64481d279c95af">ec_fsm_master_reset</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:afbc118dc57b717b9ef64481d279c95af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset state machine.  <a href="#afbc118dc57b717b9ef64481d279c95af">More...</a><br /></td></tr>
<tr class="separator:afbc118dc57b717b9ef64481d279c95af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00fbd64d7585868b5b505a591cc1b508"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a00fbd64d7585868b5b505a591cc1b508">ec_fsm_master_exec</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a00fbd64d7585868b5b505a591cc1b508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Executes the current state of the state machine.  <a href="#a00fbd64d7585868b5b505a591cc1b508">More...</a><br /></td></tr>
<tr class="separator:a00fbd64d7585868b5b505a591cc1b508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a585646e7a108608984e8abaef1925b19"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a585646e7a108608984e8abaef1925b19">ec_fsm_master_idle</a> (const <a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="separator:a585646e7a108608984e8abaef1925b19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a767682798697586629a255018156b3f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a767682798697586629a255018156b3f0">ec_fsm_master_restart</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a767682798697586629a255018156b3f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restarts the master state machine.  <a href="#a767682798697586629a255018156b3f0">More...</a><br /></td></tr>
<tr class="separator:a767682798697586629a255018156b3f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a726e0bdb4393a1734a77a59d4ade4210"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a726e0bdb4393a1734a77a59d4ade4210">ec_fsm_master_action_process_sii</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a726e0bdb4393a1734a77a59d4ade4210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for pending SII write requests and process one.  <a href="#a726e0bdb4393a1734a77a59d4ade4210">More...</a><br /></td></tr>
<tr class="separator:a726e0bdb4393a1734a77a59d4ade4210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3db66b3ce0e026d06f3db18abcafc85a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a3db66b3ce0e026d06f3db18abcafc85a">ec_fsm_master_action_process_sdo</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a3db66b3ce0e026d06f3db18abcafc85a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for pending SDO requests and process one.  <a href="#a3db66b3ce0e026d06f3db18abcafc85a">More...</a><br /></td></tr>
<tr class="separator:a3db66b3ce0e026d06f3db18abcafc85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af44b55bff43485d6169b6009b4fc3afb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#af44b55bff43485d6169b6009b4fc3afb">ec_fsm_master_action_idle</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:af44b55bff43485d6169b6009b4fc3afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master action: IDLE.  <a href="#af44b55bff43485d6169b6009b4fc3afb">More...</a><br /></td></tr>
<tr class="separator:af44b55bff43485d6169b6009b4fc3afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b4466fd641681334322d7b6185ea041"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a4b4466fd641681334322d7b6185ea041">ec_fsm_master_action_next_slave_state</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a4b4466fd641681334322d7b6185ea041"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master action: Get state of next slave.  <a href="#a4b4466fd641681334322d7b6185ea041">More...</a><br /></td></tr>
<tr class="separator:a4b4466fd641681334322d7b6185ea041"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d48740d5f6acef41028d1328c8b6135"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a6d48740d5f6acef41028d1328c8b6135">ec_fsm_master_action_configure</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm)</td></tr>
<tr class="memdesc:a6d48740d5f6acef41028d1328c8b6135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Master action: Configure.  <a href="#a6d48740d5f6acef41028d1328c8b6135">More...</a><br /></td></tr>
<tr class="separator:a6d48740d5f6acef41028d1328c8b6135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f8ab1a2257e91c822222422f2d00c6"><td class="memItemLeft" align="right" valign="top">u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#a82f8ab1a2257e91c822222422f2d00c6">ec_fsm_master_dc_offset32</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm, u64 system_time, u64 old_offset, unsigned long jiffies_since_read)</td></tr>
<tr class="memdesc:a82f8ab1a2257e91c822222422f2d00c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure 32 bit time offset.  <a href="#a82f8ab1a2257e91c822222422f2d00c6">More...</a><br /></td></tr>
<tr class="separator:a82f8ab1a2257e91c822222422f2d00c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6cb5800d165b3f077ae89caac207471"><td class="memItemLeft" align="right" valign="top">u64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fsm__master_8c.html#ac6cb5800d165b3f077ae89caac207471">ec_fsm_master_dc_offset64</a> (<a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *fsm, u64 system_time, u64 old_offset, unsigned long jiffies_since_read)</td></tr>
<tr class="memdesc:ac6cb5800d165b3f077ae89caac207471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure 64 bit time offset.  <a href="#ac6cb5800d165b3f077ae89caac207471">More...</a><br /></td></tr>
<tr class="separator:ac6cb5800d165b3f077ae89caac207471"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>EtherCAT master state machine. </p>

<p class="definition">Definition in file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ad88c4db14716023743578741d24ef356"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad88c4db14716023743578741d24ef356">&#9670;&nbsp;</a></span>ec_fsm_master_state_start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: START. </p>
<p>Starts with getting slave count and slave states. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00197">197</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="aaedaccf13386cf2fd4d210d2b0de49d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaedaccf13386cf2fd4d210d2b0de49d2">&#9670;&nbsp;</a></span>ec_fsm_master_state_broadcast()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_broadcast </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: BROADCAST. </p>
<p>Processes the broadcast read slave count and slaves states. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00214">214</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a6f450d1021bf89f229fd39cc2aad8ea2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f450d1021bf89f229fd39cc2aad8ea2">&#9670;&nbsp;</a></span>ec_fsm_master_state_read_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_read_state </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: READ STATE. </p>
<p>Fetches the AL state of a slave. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00627">627</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a334ce30106dc39dc565a258a83abaa5c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a334ce30106dc39dc565a258a83abaa5c">&#9670;&nbsp;</a></span>ec_fsm_master_state_acknowledge()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_acknowledge </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: ACKNOWLEDGE. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00682">682</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="aaf40137bf5c31dc6a5c664ab10933d09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf40137bf5c31dc6a5c664ab10933d09">&#9670;&nbsp;</a></span>ec_fsm_master_state_configure_slave()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_configure_slave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: CONFIGURE SLAVE. </p>
<p>Starts configuring a slave. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00889">889</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a61be059802776f90560a2b3af6bc6efa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a61be059802776f90560a2b3af6bc6efa">&#9670;&nbsp;</a></span>ec_fsm_master_state_clear_addresses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_clear_addresses </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: CLEAR ADDRESSES. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00720">720</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a22d13892f43d288406c5c08bd30bf2fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22d13892f43d288406c5c08bd30bf2fd">&#9670;&nbsp;</a></span>ec_fsm_master_state_dc_measure_delays()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_dc_measure_delays </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: DC MEASURE DELAYS. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00764">764</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a0e4c985906d0e036c4039305621db63e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0e4c985906d0e036c4039305621db63e">&#9670;&nbsp;</a></span>ec_fsm_master_state_scan_slave()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_scan_slave </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: SCAN SLAVE. </p>
<p>Executes the sub-statemachine for the scanning of a slave. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00817">817</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="ad625d5b77974efd8b81ad28cebc76ca9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad625d5b77974efd8b81ad28cebc76ca9">&#9670;&nbsp;</a></span>ec_fsm_master_state_dc_read_offset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_dc_read_offset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: DC READ OFFSET. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l01045">1045</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a411d3aafe085c64e7f5d8aad7b4cf231"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a411d3aafe085c64e7f5d8aad7b4cf231">&#9670;&nbsp;</a></span>ec_fsm_master_state_dc_write_offset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_dc_write_offset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: DC WRITE OFFSET. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l01098">1098</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="ab45ec9b9296a9d89c5c69bfd1a131f22"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab45ec9b9296a9d89c5c69bfd1a131f22">&#9670;&nbsp;</a></span>ec_fsm_master_state_write_sii()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_write_sii </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: WRITE SII. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l01133">1133</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a51be12a2333f0ce6a1ecde4bed85c648"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51be12a2333f0ce6a1ecde4bed85c648">&#9670;&nbsp;</a></span>ec_fsm_master_state_sdo_dictionary()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_sdo_dictionary </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: SDO DICTIONARY. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l01187">1187</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a36ee13ebfe148e663f3c33ca6e408d1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36ee13ebfe148e663f3c33ca6e408d1f">&#9670;&nbsp;</a></span>ec_fsm_master_state_sdo_request()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_state_sdo_request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master state: SDO REQUEST. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l01222">1222</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a8b28c82e05cda964aaf088b49c0544b8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b28c82e05cda964aaf088b49c0544b8">&#9670;&nbsp;</a></span>ec_fsm_master_enter_clear_addresses()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_enter_clear_addresses </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start clearing slave addresses. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00704">704</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a66d11aeef350f72a207d329c9e617d1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66d11aeef350f72a207d329c9e617d1b">&#9670;&nbsp;</a></span>ec_fsm_master_enter_write_system_times()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_enter_write_system_times </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start writing DC system times. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00917">917</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a488579eaa191d91cfc1fe034d4995cd2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a488579eaa191d91cfc1fe034d4995cd2">&#9670;&nbsp;</a></span>ec_fsm_master_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__ApplicationInterface.html#ga60ec31b46fcf7994c511359402c64baa">ec_master_t</a> *&#160;</td>
          <td class="paramname"><em>master</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structec__datagram__t.html">ec_datagram_t</a> *&#160;</td>
          <td class="paramname"><em>datagram</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
    <tr><td class="paramname">master</td><td>EtherCAT master. </td></tr>
    <tr><td class="paramname">datagram</td><td>Datagram object to use. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00076">76</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="ad6cb9c34903756062ea8bb72469e9cee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad6cb9c34903756062ea8bb72469e9cee">&#9670;&nbsp;</a></span>ec_fsm_master_clear()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_clear </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00103">103</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="afbc118dc57b717b9ef64481d279c95af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbc118dc57b717b9ef64481d279c95af">&#9670;&nbsp;</a></span>ec_fsm_master_reset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reset state machine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00121">121</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a00fbd64d7585868b5b505a591cc1b508"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00fbd64d7585868b5b505a591cc1b508">&#9670;&nbsp;</a></span>ec_fsm_master_exec()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_fsm_master_exec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Executes the current state of the state machine. </p>
<p>If the state machine's datagram is not sent or received yet, the execution of the state machine is delayed to the next cycle.</p>
<dl class="section return"><dt>Returns</dt><dd>true, if the state machine was executed </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00150">150</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a585646e7a108608984e8abaef1925b19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a585646e7a108608984e8abaef1925b19">&#9670;&nbsp;</a></span>ec_fsm_master_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_fsm_master_idle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>true, if the state machine is in an idle phase </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00169">169</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a767682798697586629a255018156b3f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a767682798697586629a255018156b3f0">&#9670;&nbsp;</a></span>ec_fsm_master_restart()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_restart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Restarts the master state machine. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00180">180</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a726e0bdb4393a1734a77a59d4ade4210"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a726e0bdb4393a1734a77a59d4ade4210">&#9670;&nbsp;</a></span>ec_fsm_master_action_process_sii()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_fsm_master_action_process_sii </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for pending SII write requests and process one. </p>
<dl class="section return"><dt>Returns</dt><dd>non-zero, if an SII write request is processed. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00391">391</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a3db66b3ce0e026d06f3db18abcafc85a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3db66b3ce0e026d06f3db18abcafc85a">&#9670;&nbsp;</a></span>ec_fsm_master_action_process_sdo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ec_fsm_master_action_process_sdo </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check for pending SDO requests and process one. </p>
<dl class="section return"><dt>Returns</dt><dd>non-zero, if an SDO request is processed. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00429">429</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="af44b55bff43485d6169b6009b4fc3afb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af44b55bff43485d6169b6009b4fc3afb">&#9670;&nbsp;</a></span>ec_fsm_master_action_idle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_action_idle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master action: IDLE. </p>
<p>Does secondary work. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00483">483</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a4b4466fd641681334322d7b6185ea041"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b4466fd641681334322d7b6185ea041">&#9670;&nbsp;</a></span>ec_fsm_master_action_next_slave_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_action_next_slave_state </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master action: Get state of next slave. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00541">541</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a6d48740d5f6acef41028d1328c8b6135"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d48740d5f6acef41028d1328c8b6135">&#9670;&nbsp;</a></span>ec_fsm_master_action_configure()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ec_fsm_master_action_configure </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Master action: Configure. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00569">569</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="a82f8ab1a2257e91c822222422f2d00c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82f8ab1a2257e91c822222422f2d00c6">&#9670;&nbsp;</a></span>ec_fsm_master_dc_offset32()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u64 ec_fsm_master_dc_offset32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>system_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>old_offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>jiffies_since_read</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure 32 bit time offset. </p>
<dl class="section return"><dt>Returns</dt><dd>New offset. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
    <tr><td class="paramname">system_time</td><td>System time register. </td></tr>
    <tr><td class="paramname">old_offset</td><td>Time offset register. </td></tr>
    <tr><td class="paramname">jiffies_since_read</td><td>Jiffies for correction. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l00965">965</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
<a id="ac6cb5800d165b3f077ae89caac207471"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6cb5800d165b3f077ae89caac207471">&#9670;&nbsp;</a></span>ec_fsm_master_dc_offset64()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u64 ec_fsm_master_dc_offset64 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="fsm__master_8h.html#a0d05c703de0dd2047ef9ae60d6822cdc">ec_fsm_master_t</a> *&#160;</td>
          <td class="paramname"><em>fsm</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>system_time</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u64&#160;</td>
          <td class="paramname"><em>old_offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>jiffies_since_read</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure 64 bit time offset. </p>
<dl class="section return"><dt>Returns</dt><dd>New offset. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fsm</td><td>Master state machine. </td></tr>
    <tr><td class="paramname">system_time</td><td>System time register. </td></tr>
    <tr><td class="paramname">old_offset</td><td>Time offset register. </td></tr>
    <tr><td class="paramname">jiffies_since_read</td><td>Jiffies for correction. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="fsm__master_8c_source.html#l01007">1007</a> of file <a class="el" href="fsm__master_8c_source.html">fsm_master.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_c1346cf4828efdd0d2baf0d391d01b77.html">master</a></li><li class="navelem"><a class="el" href="fsm__master_8c.html">fsm_master.c</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
